//package com.force.common.mybatisplus.config;
//
//import com.baomidou.mybatisplus.core.handlers.MetaObjectHandler;
//import com.ruoyi.common.core.domain.model.LoginUser;
//import com.ruoyi.common.enums.DelEnum;
//import com.ruoyi.common.enums.EnableEnum;
//import com.ruoyi.common.utils.SecurityUtils;
//import lombok.extern.slf4j.Slf4j;
//import org.apache.ibatis.reflection.MetaObject;
//import org.springframework.stereotype.Component;
//
//import java.util.Date;
//
//@Component
//@Slf4j
//public class MybatisMetaObjectHandler implements MetaObjectHandler {
//	@Override
//	public void insertFill(MetaObject metaObject) {
//		/*填充字段*/
//		/*填充的值（相当于now()）*/
//		this.setFieldValByName("createTime", new Date(), metaObject);
//		this.setFieldValByName("createById", getLogUserId(), metaObject);
//		this.setFieldValByName("createName", getLoginUsername(), metaObject);
//		this.setFieldValByName("createBy", getLoginUsername(), metaObject);
//		this.setFieldValByName("delFlag", DelEnum.NORMAL.ordinal(), metaObject);
//		this.setFieldValByName("enableFlag", EnableEnum.ENABLE.ordinal(), metaObject);
//	}
//
//	@Override
//	public void updateFill(MetaObject metaObject) {
//		this.setFieldValByName("updateTime", new Date(), metaObject);
//		this.setFieldValByName("updateById", getLogUserId(), metaObject);
//		this.setFieldValByName("updateName", getLoginUsername(), metaObject);
//		this.setFieldValByName("updateBy", getLoginUsername(), metaObject);
//	}
//
//	/**
//	 * 获取登录用户名
//	 */
//	private String getLoginUsername() {
//		LoginUser loginUser;
//		try {
//			loginUser = SecurityUtils.getLoginUser();
//		} catch (Exception e) {
//			log.warn("自动注入警告 => 用户未登录");
//			return "匿名用户";
//		}
//		return loginUser.getUsername();
//	}
//
//	/**
//	 * 获取登录用户名
//	 */
//	private Long getLogUserId() {
//		LoginUser loginUser;
//		try {
//			loginUser = SecurityUtils.getLoginUser();
//		} catch (Exception e) {
//			log.warn("自动注入警告 => 用户未登录");
//			return 0L;
//		}
//		return loginUser.getUserId();
//	}
//
//
//}
